﻿#region << 文件说明 >>
/*----------------------------------------------------------------
 * 命名空间：Vampirewal.Core.Tools
 * 唯一标识：8d8f3648-93de-47c8-a501-640c9fe04b29
 * 文件名：ZipHelper
 * 
 * 创建者：杨程
 * 电子邮箱：235160615@qq.com
 * 创建时间：2025/6/4 22:13:36
 * 版本：V1.0.0
 * 描述：
 *
 * ----------------------------------------------------------------
 * 修改人：
 * 时间：
 * 修改说明：
 *
 * 版本：V1.0.1
 *----------------------------------------------------------------*/
#endregion << 文件说明 >>


namespace Vampirewal.Core;

/// <summary>
/// 数据GZip压缩
/// </summary>
public static class GZipHelper
{
    // GZip 压缩方法
    public static string CompressString(string text)
    {
        byte[] bytes = Encoding.UTF8.GetBytes(text);
        using var memoryStream = new MemoryStream();
        using (var gzipStream = new GZipStream(memoryStream, CompressionMode.Compress))
        {
            gzipStream.Write(bytes, 0, bytes.Length);
        }
        return Convert.ToBase64String(memoryStream.ToArray());
    }

    // GZip 解压方法
    public static string DecompressString(string compressedBase64)
    {
        byte[] bytes = Convert.FromBase64String(compressedBase64);
        using var memoryStream = new MemoryStream(bytes);
        using var outputStream = new MemoryStream();
        using (var gzipStream = new GZipStream(memoryStream, CompressionMode.Decompress))
        {
            gzipStream.CopyTo(outputStream);
        }
        return Encoding.UTF8.GetString(outputStream.ToArray());
    }
}
